package com.codeyang.utils;

import org.apache.shiro.crypto.hash.Md5Hash;

import java.util.UUID;

/**
 * 描述: md5 加密工具类
 *
 * @author CodeYang_Site
 * @version 2021/5/6 20:42
 */
public class Md5CodeGenUtil {

    /**
     * 默认密码
     */
    private static final String DEFAULT_PASSWORD = "123456";

    private Md5CodeGenUtil() {

    }

    /**
     * 定制密码-
     * | 用户修改密码时使用
     *
     * @param password new password
     * @param salt     new salt
     * @param count    new count
     * @return
     */
    public String getPassword(String password, String salt, int count) {
        Md5Hash md5Hash = new Md5Hash(password, salt, count);
        return md5Hash.toHex();
    }

    /**
     * 生产默认的密码
     * --
     * 新增用户时默认的密码
     *
     * @param salt 盐
     * @return
     */
    public static String getDefaultPassword(String salt) {
        Md5Hash md5Hash = new Md5Hash(DEFAULT_PASSWORD, salt, 2);
        return md5Hash.toHex();
    }

    /**
     * get 盐
     *
     * @return
     */
    public static String getSalt() {
        return UUID.randomUUID().toString().replace("-", "");
    }

}
